/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.uniminuto.park.controlador;

import co.uniminuto.park.clases.Estacionamiento;
import co.uniminuto.park.clases.Geolocalizacion;
import co.uniminuto.park.dao.consultarrEstacionamientoDao;
import co.uniminuto.park.dao.insertarEstacionamientoDao;
import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.servlet.http.HttpSession;
import org.primefaces.event.map.OverlaySelectEvent;
import org.primefaces.model.map.DefaultMapModel;
import org.primefaces.model.map.LatLng;
import org.primefaces.model.map.MapModel;
import org.primefaces.model.map.Marker;

/**
 *
 * @author Esteban Rozo
 */
@ManagedBean
@SessionScoped
public class prueba implements Serializable {
    
    private MapModel mapa;
    private Marker marker;
    private Estacionamiento sitio;
    FacesContext context = javax.faces.context.FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
EstacionamientosLista nB =(EstacionamientosLista) session.getAttribute("elementoLista");
    
    private EstacionamientosLista getElementoApplication() {
        FacesContext cont = FacesContext.getCurrentInstance();
        return cont.getApplication().evaluateExpressionGet(cont, "#{elementoApplication}", EstacionamientosLista.class);
    }
    
    public MapModel getMapa() {
        return mapa;
    }
    
    public Marker getMarker() {
        return marker;
    }
    
    public Estacionamiento getSitio() {
        return sitio;
    }
    
    public prueba() {
        mapa = new DefaultMapModel();
        sitio = new Estacionamiento();
        mapa = recuperarMarker();
        
        
    }
    
    public void cerrrar(){
    context.getExternalContext().getSessionMap().remove("consultarSitios");
    }
    
    public MapModel recuperarMarker() {
        consultarrEstacionamientoDao c = new consultarrEstacionamientoDao();
        List<Estacionamiento> list;
        //EstacionamientosLista lis = new EstacionamientosLista();
        list = getElementoApplication().getElementoLista();
        MapModel mapaMarket = new DefaultMapModel();
        for (Estacionamiento sit : list) {
            Marker temporal = new Marker(new LatLng(sit.getUbicacion().getLatitud(), sit.getUbicacion().getLongitud()), sit.getNombre());
            temporal.setIcon("http://maps.google.com/mapfiles/ms/micons/green-dot.png");
            mapaMarket.addOverlay(temporal);            
        }
        
        return mapaMarket;
    }

    public void onMarkerSelect(OverlaySelectEvent event) {        
        marker = (Marker) event.getOverlay();        
    }    
}
